﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using Microsoft.Reporting.WebForms;

namespace Biciq.Web.UI.Reportes
{
    public partial class ReporteCarnet : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ImprimirReporte();
                
            }
        }
        private void Reportes()
        {
            if (Request.QueryString["Reporte"] != null)
            {
                

                switch (Request.QueryString["Reporte"].ToString())
                {
                    case "AperturaCaja":
                        AperturaCaja();
                        break;

                    case "CambiosSistemaUsuario":
                        ReportesSinParametro();
                        break;
                    case "CambiosSistemaPerfil":
                        ReportesSinParametro();
                        break;
                }
            }
            else
            {
                ImprimirReporte();
            }


        }

        private void ReportesSinParametro()
        {
            string reporte = Request.QueryString["Reporte"].ToString();
            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
            ReportViewer1.ServerReport.ReportServerUrl = new Uri(servidorReportes);

            ReportViewer1.ServerReport.ReportPath = carpeta + reporte;

            ReportViewer1.ServerReport.Refresh();
        }

    
        private void AperturaCaja()
        {
            string reporte = "AperturaCaja";
            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            string idAperturaCaja = Request.QueryString["Id"].ToString();

            
        }
        private void ImprimirReporte()
        {
            string reporte = "CarnetCliente";

            if (Request.QueryString["Tipo"].ToString() == "Empleado")
            {
                reporte = "CarnetEmpleado";
            }
           
            string servidorReportes = new AppSettingsReader().GetValue("ServidorReportes", reporte.GetType()).ToString();
            string carpeta = new AppSettingsReader().GetValue("CarpetaReportes", reporte.GetType()).ToString();
            try
            {

          


                ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
                ReportViewer1.ServerReport.ReportServerUrl = new Uri(servidorReportes);

                ReportViewer1.ServerReport.ReportPath = carpeta + reporte;


                   ReportParameter parametro = new ReportParameter();
                    parametro.Name = "id";
                    parametro.Values.Add(Request.QueryString["Id"].ToString());
                    parametro.Visible = false;

                    //Crearemos un arreglo de parámetros
                    ReportParameter[] rp = { parametro };

                    ReportViewer1.ServerReport.SetParameters(rp);
                    //Ahora agregamos el parámetro en al reporte



               
                ReportViewer1.ServerReport.Refresh();
            }

            catch (Exception ex)
            {

                ex.Message.ToString();



            }
        }
    }
}